package nii.game.mobileserio.enemy;

import java.util.ArrayList;

import org.anddev.andengine.engine.Engine;
import org.anddev.andengine.opengl.texture.region.TiledTextureRegion;
import org.anddev.andengine.util.pool.GenericPool;

public class EnemyPool extends GenericPool<Enemy>{

	// DECLARATIONS ==========================================
	private TiledTextureRegion ttr;
	private Engine mEngine;
	private ArrayList<Enemy> arrEnemy;
	
	// CONTRUCTOR ============================================
	public EnemyPool(Engine engine, TiledTextureRegion pttr) {
		mEngine = engine;
		ttr = pttr;
		arrEnemy = new ArrayList<Enemy>();
	}
	
	//======================================|| onAllocatePoolItem ||==========================================//
	
	public Enemy onAllocatePoolItem() {
		Enemy fs=  new Enemy();
		arrEnemy.add(fs);
		return fs;
	}
	
	//======================================||onHandleRecycleItem ||==========================================//
	
	public void onHandleRecycleItem(final Enemy fs){
//		if (fs.isAttachToScene()) {
//			fs.setIgnoreUpdate(true);
//			fs.setVisible(false);
//			fs.setAttachToScene(false);
//		}
	}
	
	//======================================|| onHandleObtainItem ||==========================================//
	
	public void onHandleObtainItem(final Enemy fs) {
		//fs.reset();
	}
	
	//=========================================|| doSomething ||==============================================//
	
	public void doSomething() {
		for (Enemy fs : arrEnemy) {
			if (fs.enemy_AnimatedSprite.isVisible() == false) {
				this.recyclePoolItem(fs);
			}
		}
	}

}
